import Vue from 'vue'
import Vuex from 'vuex'
import { setToken, getToken } from '@/utils/auth'

//? vuex的数据是响应式的

//? 怎么修改vuex数据
//? vuex的数据都是自产自销
//? vuex的数据必须在vuex里修改
//? mutations定义方法去修改，在外接调用这个方法
//? mutations方法 建议是大写
//? mutations方法可以接收到两个参数，一个是state，第二个是payload
//? $store.commit('方法名字')用于触发mutations里的方法

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // tokenObj: storage.get('HEIMA_TOUTIAO_YOKEN') || {}
    tokenObj: getToken() || {}
  },
  mutations: {
    SET_TOKEN(state, payload) {
      state.tokenObj = payload
      //? token存储到本地存储中
      //? 本地存储 操作是JSON格式字符串
      // storage.set('HEIMA_TOUTIAO_YOKEN', payload)
      setToken(payload)
    }
  }
})
